package com.captain.leetcode.二叉树;

import com.captain.leetcode.TreeNode;

import java.util.ArrayList;
import java.util.List;

/**
 * @author captain
 * @Des 前序遍历: 先节点 ,再左 , 再右 preorder
 * @Date 2021/7/20 20:44
 */
public class 二叉树的前序遍历144 {
    public static void main(String[] args) {
        二叉树的前序遍历144 main = new 二叉树的前序遍历144();
    }

    public List<Integer> preorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        preorder(root, res);
        return res;
    }

    public void preorder(TreeNode tree, List<Integer> res) {
        //采用递归的方式, 如果为空,则返回
        if (tree == null) return;
        //不为空
        res.add(tree.val);
        //遍历左边的节点
        preorder(tree.left, res);
        //左边遍历完后遍历右边的
        preorder(tree.right, res);
    }
}
